package com.hxzy.entity;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 
 * 优惠券
 */
@Data
@KeySequence(value = "MALL_COUPON_SEQ")
public class MallCoupon implements Serializable {
    @TableId(value = "coupon_id")
    private BigDecimal couponId;

    /**
     * 优惠券名称
     */
    private String couponName;

    /**
     * 优惠券介绍，通常是显示优惠券使用限制文字
     */
    private String couponDesc;

    /**
     * 优惠券数量，如果是0，则是无限量
     */
    private Long couponTotal;

    /**
     * 优惠金额
     */
    private Long discount;

    /**
     * 最少消费金额才能使用优惠券。
     */
    private Long min;

    /**
     * 用户领券限制数量，如果是0，则是不限制；默认是1，限领一张.
     */
    private Short couponLimit;

    /**
     * 优惠券赠送类型，如果是0则通用券，用户领取；如果是1，则是注册赠券；如果是2，则是优惠券码兑换；',
     */
    private Short couponType;

    /**
     * 优惠券状态，如果是0则是正常可用；如果是1则是过期; 如果是2则是下架。
     */
    private Short couponStatus;

    /**
     * 商品限制类型，如果0则全商品，如果是1则是类目限制，如果是2则是商品限制。
     */
    private Short goodsType;

    /**
     * 商品限制值，goods_type如果是0则空集合，如果是1则是类目集合，如果是2则是商品集合。
     */
    private String goodsValue;

    /**
     * 优惠券兑换码
     */
    private String couponCode;

    /**
     * 优惠卷开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date couponStartTime;

    /**
     * 优惠卷结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date couponEndTime;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime;

    /**
     * 逻辑删除
     */
    private Short isDeleted;

    private static final long serialVersionUID = 1L;
}